﻿//***********************************************************************
// Assembly         : IGolovkine.AoA.Core
// Author           : Ilia
// Created          : 06-11-2011
//
// Last Modified By : Ilia
// Last Modified On : 06-11-2011
// Description      : 
//
// Copyright        : (c) Microsoft. All rights reserved.
//***********************************************************************
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace IGolovkine.AoA.BinarySerialization
{
    /// <summary>
    /// 
    /// </summary>
    /// <remarks></remarks>
    public interface ISlimBinaryReader
    {
        /// <summary>
        /// Reads the int32.
        /// </summary>
        /// <returns></returns>
        /// <remarks></remarks>
        Int32 ReadInt32();
        /// <summary>
        /// Reads the string.
        /// </summary>
        /// <returns></returns>
        /// <remarks></remarks>
        string ReadString();
        /// <summary>
        /// Reads the object.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        /// <remarks></remarks>
        T ReadObject<T>() where T : ISlimBinarySerializable;
        /// <summary>
        /// Reads the byte array.
        /// </summary>
        /// <returns></returns>
        /// <remarks></remarks>
        byte[] ReadByteArray();
    }
}
